Use case: IRDA receive in DMA mode ¶
This use case shows how to receive IRDA data in DMA mode. In HAL2, IRDA support is handled via the HAL UART driver.
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
#define DATA_TO_RECEIVE_SIZE 255
IRDA_HandleTypeDef hirda;
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
/* Optional: register receive-complete callback */
HAL_IRDA_RegisterCallback(&hirda, HAL_IRDA_RX_CB_ID, IRDA_RxCpltCallback);
/* Start receive in DMA mode */
(void)HAL_IRDA_Receive_DMA(&hirda, aRxBuffer, DATA_TO_RECEIVE_SIZE);
|
#define DATA_TO_RECEIVE_SIZE 255
hal_uart_handle_t huart;
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
/* Optional: register receive-complete callback */
HAL_USART_RegisterRxCpltCallback(&huart, UART_RxCpltCallback);
/* Start receive in DMA mode */
(void)HAL_UART_Receive_DMA(&huart, aRxBuffer, DATA_TO_RECEIVE_SIZE);
|
Key changes ¶
HAL2 migrates from HAL_IRDA_Receive_DMA() to HAL_UART_Receive_DMA().
HAL2 DMA start helper naming differs (HAL_DMA_StartPeriphXfer_IT_Opt() versus HAL_DMA_Start_IT()).

